package com.shenfa.service.xml;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
 * 电子账单xml写入
 * @author Administrator
 *
 */
public class EXml{
	/**
	 *电子账单xml保存路径
	 */
	public String path="d:";

	/**
	 * 电子账单实体文件
	 */
	public File file;
	/**
	 * 文件写入流
	 */
	public RandomAccessFile filew;
	
	/**
	 * 创建一个xml
	 * xml命名：账期_产品ID_批次.xml
	 * @param cardid 账单ID
	 */
	public String create(String cardid,String path){
		File temp=new File(path);
		//判断保存文件的路径是否存在
		if(!temp.exists()){
			temp.mkdirs();
		}
		//创建文件对象
		file=new File(path+"HTML_"+cardid+"_"+System.currentTimeMillis()+".xml");
		try {
			if(file.exists()){
				file.delete();
			}
			//如果创建文件实体成功
			if(file.createNewFile()){
				filew=new RandomAccessFile(file.getPath(),"rw");//创建文件I/O流对象
				this.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<xyk>\n<checksheets>\n");
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return file.getPath().replace("\\", "/"); 
	}
	/**
	 * 写入文件
	 * @param xml
	 */
	public void write(String xml){
		//将xml内容写入实体文件
		try {
			filew.write(xml.getBytes("utf-8"));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 结束写入xml文件
	 * @param xml
	 */
	public void over(int count){
		write("</checksheets>\n</xyk>\n");//写入xml结束
		try {
			filew.close();//关闭文件写入流
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			filew=null;
		}
	}
	
	public void close(int count){
		try {
			this.write("</checksheets>\n</xyk>\n");//写入xml结束
			filew.close();//关闭文件写入流
			if(0==count){
				file.delete();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			filew=null;
		}
	}
}
